//
// Created by shkstart on 2023/8/26.
// for的课后练习

/*
 * 1. 我们可以在循环结构中使用break，一旦执行break，就跳出当前循环结构
 *
 * 2. 小结：循环结构结束的情况
 *   情况1：循环条件部分，返回假（或false、0），导致循环结束
 *   情况2：在循环体内部，满足某个条件的情况下，执行了break，导致结束循环
 *
 * 3. 开发中，如果循环结构不能正常结束，那就是一个死循环！开发中要避免出现死循环
 *
 * */
#include <stdio.h>

int main(){

    /*
     * 说明：输入两个正整数m和n，求其最大公约数和最小公倍数。
        比如：12和20的最大公约数是4，最小公倍数是60。


     * */

    int m = 12,n = 20;
    //获取m和n的较小值
    int min = (m < n)? m : n;

    //求最大的公约数
    for(int i = min;i >= 1;i--){
        if(m % i == 0 && n % i == 0){
            printf("最大公约数是%d\n",i);
            break; // 一旦执行，就结束循环结构
        }
    }

    //求最小公倍数
    //获取m和n的较大值
    int max = (m > n)? m : n;
    for(int i = max;i <= m * n;i++){
        if(i % m == 0 && i % n == 0){
            printf("最小公倍数是%d\n",i);
            break; // 一旦执行，就结束循环结构
        }
    }
    return 0;
}
